package com.yunxin.core.customer.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yunxin.core.application.dto.order.OrderUserApplyDetailDTO;
import com.yunxin.core.customer.domain.CustomerInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yunxin.core.customer.domain.CustomerInfoDetail;
import com.yunxin.core.customer.domain.CustomerOperationLog;
import com.yunxin.core.customer.dto.*;
import com.yunxin.core.customer.vo.*;

import java.util.List;

/**
* @author Administrator
* @description 针对表【customer_info(客户信息详情表)】的数据库操作Service
* @createDate 2024-05-22 17:11:04
*/
public interface CustomerInfoService extends IService<CustomerInfo> {

    IPage<CustomerInfoVo> customerPageQuery(CustomerPageDto command);

    IPage<CustomerTelephoneInfoVo> customerTelephonerPageQuery(CustomerTelephonerPageDto command);

    IPage<CustomerSalesmanInfoVo> customerSalesmanPageQuery(CustomerSalesmanPageDto command);

    IPage<CustomerWechatInfoVo> customerWechatPageQuery(CustomerWechatPageDto command);

    OrderUserApplyDetailDTO customerInfoDetail(Long customerId,Long wechatCustomerId);

    Boolean operationCustomerInfo(OperationCustomerInfoDto dto);

    Boolean operationWechatCustomerInfo(OperationWechatCustomerInfoDto dto);

    CustomerOperationInfoVo CustomerOperationInfo(Long customerId);

//    Boolean customerChange(operationDistributionDto dto);

    Boolean reDistribution(operationDistributionDto dto,CustomerInfo customerInfo );

    Boolean batchReassign(BatchOperationDistributionDto dto, List<CustomerInfo> customerInfos);

    Boolean relieveDistribution(Long customerId,Long userId);

    newCustomerCountVo newCustomerCount();

    List<CustomerOperationLog> getOperationLogByCustomerId(Long customerId);

    List<CustomerOperationLog> getOperationLogByWechatCustomerId(Long wechatCustomerId);
}
